import wx from 'weixin-js-sdk'

import { post, get } from "../api/api.js";
import router from "../router";
import baseUrl from "@/utils/baseUrl.js"

export function initAPIs(result, id, order_id) {
    new Promise((resolve, reject) => {
        post('/api/client/user/wxPayConfig', { opt: 'wx', url: baseUrl.productionWeb }).then(res => {
            // console.log(res.data.result, 'res')
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: "wx55eb0c5e4cf93b2d", // 必填，公众号的唯一标识
                timestamp: res.data.result.timestamp, // 必填，生成签名的时间戳
                nonceStr: res.data.result.nonceStr, // 必填，生成签名的随机串
                signature: res.data.result.signature,// 必填，签名，见附录1
                jsApiList: ['chooseWXPay']
                // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
            });

            wx.ready(function () {
                wx.checkJsApi({
                    jsApiList: ['chooseWXPay'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
                    success: function (res) {
                        // 以键值对的形式返回，可用的api值true，不可用为false
                        // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                    },
                    error: function (err) {
                        console.log(err, 'error')
                    }
                });
                WeixinJSBridge.invoke(
                    'getBrandWCPayRequest', {
                    "appId": result.result.appId,     //公众号ID，由商户传入     
                    "timeStamp": result.result.timeStamp,         //时间戳，自1970年以来的秒数     
                    "nonceStr": result.result.nonceStr, //随机串     
                    "package": result.result.package,
                    "signType": "MD5",         //微信签名方式：     
                    "paySign": result.result.paySign,
                },
                    function (res) {
                        if (res.err_msg == "get_brand_wcpay_request:ok") {
                            // alert('success')
                            router.push({
                                path: "/payCompleted",
                                query: {
                                    id: id,
                                    order_id: order_id,
                                },
                            });
                            // 使用以上方式判断前端返回,微信团队郑重提示：
                            //res.err_msg将在用户支付成功后返回ok，但并不保证它绝对可靠。
                        } else {
                            // alert("Fail")
                        }
                    });

                // wx.chooseWXPay({
                //     appId: result.result.appId,
                //     timestamp: result.result.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                //     nonceStr: result.result.nonceStr, // 支付签名随机串，不长于 32 位
                //     package: result.result.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
                //     signType: "MD5", // 微信支付V3的传入RSA,微信支付V2的传入格式与V2统一下单的签名格式保持一致
                //     paySign: result.result.paySign, // 支付签名
                //     success: function (res) {
                //         alert(res, 'success')
                //         // 支付成功后的回调函数
                //     },
                //     fail: function (res) {
                //         // 失败回调函数
                //         alert(res, 'fail')
                //     }
                // }

                // );
                wx.error((res) => {
                    // console.log(JSON.stringify(res) + "微信验证失败")
                })
            });
        }).catch(err => {
        })
    })

}

